package com.rw.coco.test.dataapi;

import com.rw.coco.api.data.PersistenceMapper;
import com.rw.coco.api.data.modle.AccountModel;
import com.rw.coco.api.data.modle.BotModel;
import com.rw.coco.api.data.modle.CardModel;
import com.rw.coco.api.data.modle.CharacterModel;
import com.rw.coco.api.data.modle.CharacterPropertyModel;
import com.rw.coco.api.data.modle.DeckModel;
import com.rw.coco.api.data.modle.GroupModel;
import lombok.extern.slf4j.Slf4j;

import java.util.List;
import java.util.Set;

@Slf4j
public class MockPersistenceMapper implements PersistenceMapper {
    @Override
    public BotModel getBot(long id) {
        return null;
    }

    @Override
    public void botSwitchOn(long id) {
        log.info("botSwitchOn(long id) : {}", id);
    }

    @Override
    public void botSwitchOff(long id) {
        log.info("botSwitchOff(long id) : {}", id);
    }

    @Override
    public void blackAccount(long id) {
        log.info("blackAccount(long id) : {}", id);
    }

    @Override
    public void blackGroup(long id) {
        log.info("blackGroup(long id) : {}", id);
    }

    @Override
    public void groupSwitchOff(long id) {
        log.info("groupSwitchOff(long id) : {}", id);
    }

    @Override
    public void whiteAccount(long id) {
        log.info("whiteAccount(long id) : {}", id);
    }

    @Override
    public void whiteGroup(long id) {
        log.info("whiteGroup(long id) : {}", id);
    }

    @Override
    public void groupSwitchOn(long id) {
        log.info("groupSwitchOn(long id) : {}", id);
    }

    @Override
    public AccountModel getAccount(long id) {
        return null;
    }

    @Override
    public GroupModel getGroup(long id) {
        return null;
    }

    @Override
    public void setCustomChar(long id, String customChar) {
        log.info("setCustomChar(long id) : {}", id);
    }

    @Override
    public void setCharacter(long id, int characterId) {
        log.info("setCharacter(long id) : {}", id);
    }

    @Override
    public List<CharacterModel> getAllCharacters(long id) {
        return null;
    }

    @Override
    public CharacterModel getCharacter(long id) {
        return null;
    }

    @Override
    public void deleteCharacter(long id, int characterId) {
        log.info("deleteCharacter(long id) : {}", id);
    }

    @Override
    public Set<CharacterPropertyModel> getProperties(long id) {
        return null;
    }

    @Override
    public void setProperties(long id, Set<CharacterPropertyModel> properties) {
        log.info("setProperties(long id, Set<CharacterPropertyModel> properties) : {}", id);
        for (CharacterPropertyModel property : properties) {
            log.info("properties : {} - {} - {}", property.getCharacterId(), property.getPropertiesName(),
                    property.getPropertiesValue());
        }
    }

    @Override
    public void deleteProperties(long id, CharacterPropertyModel property) {
        log.info("deleteProperties(long id, CharacterPropertyModel property) : {} , {} - {} - {}", id,
                property.getCharacterId(), property.getPropertiesName(), property.getCharacterId());
    }

    @Override
    public void deleteAllProperties(long id) {
        log.info("deleteAllProperties(long id) : {}", id);
    }

    @Override
    public List<DeckModel> getDecks() {
        return null;
    }

    @Override
    public DeckModel getDeck(String name) {
        return null;
    }

    @Override
    public List<CardModel> getAllCards(String deckName) {
        return null;
    }
}
